package com.huhao.concurrency.example.singleton;

import com.huhao.concurrency.annoations.NotRecommend;

/**
 * 懒汉模式
 * 单例的实例在第一次使用时候进行创建
 * <p>
 * getInstance方法设置synchronized，则多线程下只会有1个执行
 * but：不推荐，性能会比较低
 */
@NotRecommend
public class SingletonExample3 {
    /**
     * 单例构造器
     * 必须私有，不能外部调用
     */
    private SingletonExample3() {

    }

    //单例对象
    private static SingletonExample3 instance = null;

    //静态的工程方法
    public static synchronized SingletonExample3 getInstance() {
        if (instance == null) {
            instance = new SingletonExample3();
        }
        return instance;
    }
}
